require(["config"],function(){
	require(["jquery" ,"template","header","cookie"], function($,template){
		function Cart(){
			this.products=null//购物车信息
			this.load();
			this.addListener();
		}
		Cart.prototype ={
			constructor:Cart,
			//若有选购加载渲染页面，否则显示为空
			load:function(){
				$.cookie.json=true;
				var products=this.products = $.cookie("cart")||[];
				console.log(products);
				if(products.length===0)//购物车为空
				{
					$(".empty-basket").show();
					return;
				}
				$(".empty-basket").hide();
				//渲染数据
				var data={products:products};
				//渲染模板
				var html = template("prod_template",data);
				$(".regular-list").html(html);
			},
			addListener: function() {
				// 删除
				$(".regular-list").on("click", ".btn-del-item", $.proxy(this.delHandler, this))
				// +/-数量
				$(".regular-list").on("click", ".btn btn-sub,.btn btn-add", $.proxy(this.decIncHandler, this))
				// 输入修改数量
				$(".regular-list").on("blur", ".txt-amount", $.proxy(this.inputHandler, this));
				// 全选
				$(".h-checkall btn-checkall").on("click", $.proxy(this.ckAllHandler, this));
				// 部分选中
				$(".regular-list").on("click", ".ck_prod", $.proxy(this.ckProdHandler, this));
			},
			delHandler: function(event) {
				// 获取事件源元素(DOM元素)
				var src = event.target;
				// 获取事件源元素所在行(jQuery对象)
				var li = $(src).parents("li");
				// 获取商品 id
				var id = li.find(".prod_id").text();
				// 从数组中删除该 id 对应的商品对象
				this.products = this.products.filter(function(prod) {
					return !(prod.id == id);
				});
				// 从 cookie 中保存的购物车结构中删除商品数据
				$.cookie("cart", this.products, {expires: 10, path: "/"});
				// 从 DOM 树中删除 DOM 行结构
				li.remove();

				// 计算合计

				// 判断是否有购物车商品
				if (this.products.length === 0) { // 购物车为空
					$(".empty").show().siblings(".not-empty").hide();
				}
			},
		}
		new Cart();
		});
});